<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Introdu&ccedil;&atilde;o ao Zend Framework e ao MVC - Zend Framework Manual</title>

    <link href="../css/shCore.css" rel="stylesheet" type="text/css" />
    <link href="../css/shThemeDefault.css" rel="stylesheet" type="text/css" />
    <link href="../css/styles.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Zend Framework</h1>
<h2>Programmer's Reference Guide</h2>
<ul>
    <li><a href="../en/learning.quickstart.intro.html">Inglês (English)</a></li>
    <li><a href="../pt-br/learning.quickstart.intro.html">Português Brasileiro (Brazilian Portuguese)</a></li>
</ul>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="learning.quickstart.html">Guia R&aacute;pido do Zend Framework</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="learning.quickstart.html">Guia R&aacute;pido do Zend Framework</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="learning.quickstart.create-project.html">Crie Seu Projeto</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="learning.quickstart.intro" class="section"><div class="info"><h1 class="title">Introdução ao Zend Framework e ao MVC</h1></div>
    

    <div class="section" id="learning.quickstart.intro.zf"><div class="info"><h1 class="title">Zend Framework</h1></div>
        

        <p class="para">
            Zend Framework é um framework para aplicações Web orientado a objetos e de código aberto
            para <acronym class="acronym">PHP</acronym> 5. Zend Framework é geralmente chamado de &quot;biblioteca de
            componentes&quot;, porque tem muitos componentes fracamente acoplados que você pode usar de
            forma mais ou menos independente. Mas o Zend Framework também fornece uma avançada
            implementação Model-View-Controller (<acronym class="acronym">MVC</acronym>) que pode ser usada para
            estabelecer uma estrutura básica para seus aplicativos Zend Framework. Uma lista
            completa dos componentes do Zend Framework, juntamente com uma breve descrição pode ser
            encontrada na <a href="http://framework.zend.com/about/components" class="link external">&raquo; visão geral dos
                componentes</a>. Este Início Rápido irá apresentá-lo a alguns dos componentes do
            Zend Framework mais comumente usados, incluindo <span class="classname">Zend_Controller</span>,
            <span class="classname">Zend_Layout</span>, <span class="classname">Zend_Config</span>,
            <span class="classname">Zend_Db</span>, <span class="classname">Zend_Db_Table</span>,
            <span class="classname">Zend_Registry</span> juntamente com alguns assistentes de visualização.
        </p>

        <p class="para">
            Usando esses componentes, vamos construir um simples aplicativo de livro de visitas
            movido a banco de dados em poucos minutos. O código fonte completo para esta aplicação
            está disponível nos seguintes arquivos:
        </p>

        <ul class="itemizedlist">
            <li class="listitem">
                <p class="para">
                    <a href="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip" class="link external">&raquo; zip</a>
                </p>
            </li>

            <li class="listitem">
                <p class="para">
                    <a href="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz" class="link external">&raquo; tar.gz</a>
                </p>
            </li>
        </ul>
    </div>

    <div class="section" id="learning.quickstart.intro.mvc"><div class="info"><h1 class="title">Model-View-Controller</h1></div>
        

        <p class="para">
            Então o que é exatamente este padrão <acronym class="acronym">MVC</acronym> que todos estão falando, e
            por que você deveria se preocupar? <acronym class="acronym">MVC</acronym> é muito mais do que apenas uma
            sigla de três letras (<acronym class="acronym">TLA</acronym>), que você pode sacar sempre que quiser
            parecer esperto, tornou-se parte de uma norma nos projetos de aplicações Web modernas. E
            por uma boa razão. A maioria do código de aplicações Web está sob uma das três
            categorias seguintes: apresentação, lógica de negócios e acesso aos dados. Nos modelos
            do padrão <acronym class="acronym">MVC</acronym> esta separação relaciona-se bem. O resultado final é
            que seu código de apresentação pode ser consolidado em uma parte de sua aplicação com
            sua lógica de negócio em outra parte e seu código de acesso aos dados também em outra.
            Muitos desenvolvedores descobriram que essa separação bem definida é indispensável para
            manter seus códigos organizados, especialmente quando mais do que um desenvolvedor está
            trabalhando em uma mesma aplicação.
        </p>

        <blockquote class="note"><p><b class="note">Note</b>: <span class="info"><b>Mais Informações</b><br /></span>
            

            <p class="para">
                Vamos decompor o padrão e dar um olhada nas peças individuais:
            </p>

            <p class="para">
                <div class="inlinemediaobject"><div class="imageobject"><a href="images/d481d625821a97b9a5eb2cec99dca50e-learning.quickstart.intro.mvc.png"><img src="images/d481d625821a97b9a5eb2cec99dca50e-learning.quickstart.intro.mvc.png" alt="learning.quickstart.intro.mvc.png" width="450" height="315" /></a></div></div>
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">Model</em> - Esta é a parte de sua aplicação que define sua
                        funcionalidade básica por trás de um conjunto de abstrações. Rotinas de
                        acesso a dados e alguma lógica de negócio podem ser definidos no modelo.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">View</em> - Apresentações definem exatamente o que será
                        apresentado ao usuário. Geralmente os controladores passam os dados para
                        cada apresentação interpretá-los em algum formato. Apresentações também
                        coletam frequentemente os dados do usuário. É aqui que você provavelmente
                        encontrará a marcação <acronym class="acronym">HTML</acronym> nas suas aplicações
                        <acronym class="acronym">MVC</acronym>.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">Controller</em> - Controladores vinculam todo o padrão em um
                        conjunto. Eles manipulam modelos, decidem qual apresentação será exibida
                        baseados em solicitações do usuário e em outros fatores, repassam os dados
                        que cada apresentação necessita, ou transfere completamente o controle para
                        outro controlador. A maioria dos especialistas em <acronym class="acronym">MVC</acronym>
                        recomendam <a href="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model" class="link external">&raquo; manter
                            os controladores o mais simples possível</a>.
                    </p>
                </li>
            </ul>

            <p class="para">
                Claro que há <a href="http://ootips.org/mvc-pattern.html" class="link external">&raquo; mais a ser dito</a>
                sobre esse padrão fundamental, mas isso deve dar-lhe conhecimento suficiente para
                entender a aplicação de livro de visitas que vamos construir.
            </p>
        </p></blockquote>
    </div>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="learning.quickstart.html">Guia R&aacute;pido do Zend Framework</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="learning.quickstart.html">Guia R&aacute;pido do Zend Framework</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="learning.quickstart.create-project.html">Crie Seu Projeto</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="learning.html">Conhecendo o Zend Framework</a></li>
  <li class="header up"><a href="learning.quickstart.html">Guia R&aacute;pido do Zend Framework</a></li>
  <li class="active"><a href="learning.quickstart.intro.html">Introdu&ccedil;&atilde;o ao Zend Framework e ao MVC</a></li>
  <li><a href="learning.quickstart.create-project.html">Crie Seu Projeto</a></li>
  <li><a href="learning.quickstart.create-layout.html">Create A Layout</a></li>
  <li><a href="learning.quickstart.create-model.html">Create a Model and Database Table</a></li>
  <li><a href="learning.quickstart.create-form.html">Create A Form</a></li>
  <li><a href="learning.quickstart.conclusion.html">Congratulations!</a></li>
 </ul>
 </td>
    </tr>
</table>

<script type="text/javascript" src="../js/shCore.js"></script>
<script type="text/javascript" src="../js/shAutoloader.js"></script>
<script type="text/javascript" src="../js/main.js"></script>

</body>
</html>